package com.hongyi.system.service;

import com.hongyi.common.mybatis.page.PageData;
import com.hongyi.common.mybatis.page.PageQuery;
import com.hongyi.system.domain.dto.SysConfigDto;
import com.hongyi.system.domain.vo.SysConfigVo;

import java.util.List;

public interface ISysConfigService {

    /**
     * 获取参数配置分页列表
     *
     * @param sysConfigDto 参数配置数据
     * @param pageQuery 分页数据
     * @return 参数配置查询结果
     */
    PageData<SysConfigVo> queryConfigPageList(SysConfigDto sysConfigDto, PageQuery pageQuery);

    /**
     * 获取参数配置列表
     *
     * @param sysConfigDto 参数配置数据
     * @return 参数配置查询结果
     */
    List<SysConfigVo> selectConfigList(SysConfigDto sysConfigDto);

    /**
     * 根据参数编号获取详细信息
     *
     * @param configId 主键
     * @return 参数配置查询结果
     */
    SysConfigVo queryConfigById(Long configId);

    /**
     * 根据键名查询参数配置信息
     *
     * @param configKey 参数键名
     * @return 参数键值
     */
    String selectConfigByKey(String configKey);

    /**
     * 校验参数键名是否唯一
     *
     * @param sysConfigDto 参数信息
     * @return 结果
     */
    String checkConfigKeyUnique(SysConfigDto sysConfigDto);

    /**
     * 新增参数配置
     *
     * @param sysConfigDto 参数配置信息
     * @return 结果
     */
    String insertConfig(SysConfigDto sysConfigDto);

    /**
     * 修改参数配置
     *
     * @param sysConfigDto 参数配置信息
     * @return 结果
     */
    String updateConfig(SysConfigDto sysConfigDto);

    /**
     * 删除参数配置
     *
     * @param configIds 主键数组
     */
    void deleteConfigByIds(Long[] configIds);

    /**
     * 重置参数缓存数据
     */
    void resetConfigCache();

}
